﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using DynamicAuditor.DTOs;
using DynamicAuditor.DALAuditor;

namespace Negocio
{

    /// <summary>
    /// Summary description for WsNegocio
    /// </summary>
    [WebService(Namespace = "DynamicAuditor")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class WsMantenimientos : System.Web.Services.WebService
    {


        #region ClIENTES

        [WebMethod]
        public List<dtoCliente> ObtenerListaClientesActivos()
        {
            List<dtoCliente> clientes = new List<dtoCliente>();
            clsClientesMg mgcliente = new clsClientesMg();

            clientes = mgcliente.ObtenerClientesActivos();

            return clientes;
        }



        [WebMethod]
        public List<dtoCliente> ObtenerListaClientes()
        {
            List<dtoCliente> Clientes = new List<dtoCliente>();

            try
            {
                DynamicAuditor.DALAuditor.clsClientesMg dalcliente = new clsClientesMg();
                Clientes = dalcliente.ObtenerClientesActivos();
            }
            catch (Exception ex)
            {
                throw new Exception("Error al obtener la lista de perfiles." + ex.Message);

            }

            return Clientes;
        }

        [WebMethod]
        public int CrearCliente(dtoCliente cliente)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsClientesMg dalcliente = new clsClientesMg();

            try
            {
                resp = dalcliente.InsertClientes(cliente);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo crear el cliente." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int EliminarCliente(dtoCliente cliente)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsClientesMg dalcliente = new clsClientesMg();
            try
            {
                resp = dalcliente.DeleteCliente(cliente);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo eliminar el cliente." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int UpdateCliente(dtoCliente cliente)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsClientesMg dalcliente = new clsClientesMg();

            try
            {
                resp = dalcliente.UpdateClientes(cliente);

            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar el perfil." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public dtoCliente ObtenerClientexId(int idcliente)
        {
            dtoCliente cliente = new dtoCliente();
            DynamicAuditor.DALAuditor.clsClientesMg dalcliente = new clsClientesMg();
            try
            {
                cliente = dalcliente.ObtenerClienteporId(idcliente);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la información para el cliente solicitado." + ex.Message);
            }

            return cliente;
        }

        #endregion

        #region Departamentos

        [WebMethod]
        public List<dtoDepartamento> ObtenerListaDepartamentosActivos()
        {
            List<dtoDepartamento> departamentos = new List<dtoDepartamento>();
            clsDepartamentoMg mgdepto = new clsDepartamentoMg();

            departamentos = mgdepto.ObtenerDepartamentosActivos();

            return departamentos;
        }

        [WebMethod]
        public List<dtoDepartamento> ObtenerListaDepartamentos()
        {
            List<dtoDepartamento> departamentos = new List<dtoDepartamento>();

            try
            {
                DynamicAuditor.DALAuditor.clsDepartamentoMg daldepto = new clsDepartamentoMg();
                departamentos = daldepto.ObtenerDepartamentos();
            }
            catch (Exception ex)
            {
                throw new Exception("Error al obtener la lista de departamentos." + ex.Message);

            }

            return departamentos;
        }

        [WebMethod]
        public int CrearDepartamento(dtoDepartamento depto)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsDepartamentoMg daldepto = new clsDepartamentoMg();

            try
            {
                resp = daldepto.InsertDepartamentos(depto);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo crear el departmento." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int EliminarDepartamento(dtoDepartamento depto)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsDepartamentoMg daldepto = new clsDepartamentoMg();
            try
            {
                resp = daldepto.DeleteDepartamento(depto);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo eliminar el departamento." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int UpdateDepartamento(dtoDepartamento depto)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsDepartamentoMg daldepto = new clsDepartamentoMg();

            try
            {
                resp = daldepto.UpdateDepartamentos(depto);

            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar el departamento." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public dtoDepartamento ObtenerDeptoxId(int iddepto)
        {
            dtoDepartamento departamento = new dtoDepartamento();
            DynamicAuditor.DALAuditor.clsDepartamentoMg daldepto = new clsDepartamentoMg();
            try
            {
                departamento = daldepto.ObtenerDepartamientoporId(iddepto);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la información para el departamento solicitado." + ex.Message);
            }

            return departamento;
        }

        #endregion

        #region FORMULARIOS

        [WebMethod]
        public int CrearFormulario(dtoFormularios formulario)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsFormularios dalformulario = new clsFormularios();

            try
            {
                resp = dalformulario.InsertFormularios(formulario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo crear el formulario." + ex.Message);
            }

            return resp;


            return 0;
        }

        [WebMethod]
        public int EliminarFormulario(dtoFormularios formulario)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsFormularios dalformulario = new clsFormularios();
            try
            {
                resp = dalformulario.DeleteFormulario(formulario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo eliminar el formulario." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int UpdateFormulario(dtoFormularios formulario)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsFormularios dalformulario = new clsFormularios();

            try
            {
                resp = dalformulario.UpdateFormularios(formulario);

            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar el formulario." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public dtoFormularios ObtenerFormularioxId(int idFormulario)
        {
            dtoFormularios formulario = new dtoFormularios();
            DynamicAuditor.DALAuditor.clsFormularios dalformulario = new clsFormularios(); DynamicAuditor.DALAuditor.clsDepartamentoMg daldepto = new clsDepartamentoMg();
            try
            {
                formulario = dalformulario.ObtenerFormularioporId(idFormulario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la información para el formulario solicitado." + ex.Message);
            }

            return formulario;
        }


        [WebMethod]
        public List<dtoFormularios> ObtenerFormularioActivos()
        {
            List<dtoFormularios> formulario = new List<dtoFormularios>();
            DynamicAuditor.DALAuditor.clsFormularios dalformulario = new clsFormularios(); DynamicAuditor.DALAuditor.clsDepartamentoMg daldepto = new clsDepartamentoMg();
            try
            {
                formulario = dalformulario.ObtenerFormulariosActivos();
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la información para el formulario solicitado." + ex.Message);
            }

            return formulario;
        }


        #endregion

        #region AUDITORES

        [WebMethod]
        public List<dtoAuditores> ObtenerListaAuditores()
        {
            List<dtoAuditores> auditores = new List<dtoAuditores>();

            try
            {
                DynamicAuditor.DALAuditor.clsAuditoresMg dalauditor = new clsAuditoresMg();
                auditores = dalauditor.ObterAuditores();
            }
            catch (Exception ex)
            {
                throw new Exception("Error al obtener la lista de auditores." + ex.Message);

            }

            return auditores;
        }

        [WebMethod]
        public int CrearAuditor(dtoAuditores auditor)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsAuditoresMg dalauditor = new clsAuditoresMg();

            try
            {
                resp = dalauditor.InsertAuditores(auditor);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo crear la informacion auditor." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int EliminarAuditor(dtoAuditores auditor)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsAuditoresMg dalauditor = new clsAuditoresMg();
            try
            {
                resp = dalauditor.DeleteAuditor(auditor);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo eliminar la informacion cliente." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int UpdateAuditor(dtoAuditores auditor)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsAuditoresMg dalauditor = new clsAuditoresMg();

            try
            {
                resp = dalauditor.UpdateAuditores(auditor);

            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar la informacion del auditor." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public dtoAuditores ObtenerAuditorxId(int idauditor)
        {
            dtoAuditores auditor = new dtoAuditores();
            DynamicAuditor.DALAuditor.clsAuditoresMg dalauditor = new clsAuditoresMg();
            try
            {
                auditor = dalauditor.ObtenerAuditoresporID(idauditor);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la información para el auditor solicitado." + ex.Message);
            }

            return auditor;
        }


        #endregion









    }
}
